/********
Copyrights  Jean-Marie Boiry <jean-marie.boiry@live.fr>


This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)

This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
more details.

You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
**********/

#include "stdafx.h"
#include "CH264Parser.h"
#include <iostream>
using namespace std;


CH264Parser::CH264Parser(byte* buffer, int len)
{
	_stream.reset(new CMemoryStream(buffer, len));
	_br.reset(new CBinaryReader(_stream.get()));
}


CH264Parser::~CH264Parser()
{
}

void CH264Parser::ParseNalUnits()
{
	int size = _stream->Length();
	int position = _stream->Position();
	int nalNumber = 0;

	
	while (position < size - sizeof(int))
	{
		int header = _br->ReadInt32();
		position += sizeof(int);

		if (header == 0x01000000)
		{
			nalNumber++;
		}
	}
	cout << "Nal number : " << nalNumber << endl;
}
